package com.fyl.pattern.memento.white_box;

/**
 * 游戏角色类(发起人角色)
 */
public class GameRole {
    private int vit;//生命力
    private int atk;//攻击力
    private int def;//防御力

    //初始化内部状态
    public void initState(){
        this.vit=100;
        this.atk=100;
        this.def=100;
    }

    //战斗
    public void fight(){
        this.vit=0;
        this.atk=0;
        this.def=0;
    }

    //保存角色状态功能
    public RoleStateMemento saveState(){
        return new RoleStateMemento(this.vit,this.atk,this.def);
    }

    //回复角色状态
    public void recoverState(RoleStateMemento memento){
        this.vit=memento.getVit();
        this.atk=memento.getAtk();
        this.def=memento.getDef();
    }

    //展示角色状态
    public void stateDisplay(){
        System.out.println("vit = " + vit);
        System.out.println("atk = " + atk);
        System.out.println("def = " + def);
    }

    public int getVit() {
        return vit;
    }

    public void setVit(int vit) {
        this.vit = vit;
    }

    public int getAtk() {
        return atk;
    }

    public void setAtk(int atk) {
        this.atk = atk;
    }

    public int getDef() {
        return def;
    }

    public void setDef(int def) {
        this.def = def;
    }
}
